package com.bytezero.supertest;
/*
 * 
 * super关键字使用
 * 1.super:理解为 父类的
 * 2.super可以使用调用：属性，方法，构造器
 * 
 * 3.super的使用:调用属性，方法，
 *    
 *    可以在子类的方法或构造器中。通过使用“super.属性的” 或“super.方法”的方式，
 *  显示的调用父类声明的属性或方法。但是，通常情况下，习惯省略“super.”
 *    
 *   特殊情况： 当子类与父类定义了同名的属性时：我们想要在子类中调用父类中声明的属性，则必须
 *  显示的使用：super.属性  的方式，表明调用的是父类中声明的属性
 * 
 *   特殊情况：当子类重写了父类的方法以后，我们想在子类的方法中调用了父类中被重写的方法时，
 *  则必须显示的使用：super.方法  的方式，表明调用的是父类中被重写的方法 
 * 
 *  4.super调用构造器  调用父类的 构造器
 *    1.在子类的构造器中显示的使用"super(形参列表)"的方式，调用父类中声明指定的构造器
 *    2."super(形参列表)"的方式的使用，必须声明在子类构造器的首行！！
 *    3.我们在类的构造器中，针对于”this(形参列表)“或”super(形参列表)“，只能二选一，不能
 *  同时出现。
 *    4.在构造器的首行，没有先显示的声明，”this(形参列表)“或”super(形参列表)“，则默认调用
 *  的是父类中空参的构造器：super();
 *    5.在类的多个构造器中，至少有一个类的构造器中，使用了”super(形参列表)“，调用父类中的构造器
 *    
 *    
 * 
 */
public class SuperTest
{
	public static void main(String[] args) {
		
		Student s = new Student();
		s.show();
		
	
		System.out.println();
		s.study();
		
		Student s1 = new Student("Tom",21,"IT");
		s1.show();
		
		System.out.println("*******************");
		Student s2 = new Student();
		
		
		
		
	}
}































